home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / util / libs / MMULib.readme < prev    next >
Encoding:
Text File  |  1999-05-02  |  16.5 KB  |  387 lines

  1. Short:    Library to ctrl the MC68K MMUs, beta
  2. Author:   thor@math.tu-berlin.de (Thomas Richter)
  3. Uploader: thor@math.tu-berlin.de (Thomas Richter)
  4. Version:  0.26
  5. Type:     util/libs
  6. Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
  7.  
  8. -----------------------------------------------------------------------------
  9. Who may use this software:
  10.  
  11. Runs on all Amigas, Os 2.04 required. However, it *does not* work if the P5
  12. ppc.library is installed. This is because this library hacks on the MMU tables
  13. itself, without any kind of interface or any access control mechanism.
  14.  
  15. The mmu.library works fine with WarpOs, though.
  16.  
  17. -----------------------------------------------------------------------------
  18.  
  19. Release 0.26
  20. ------------
  21.  
  22.     - Fixed a bug in the exception handling, forgot to restore a6.
  23.     - Fixed the return value of RebuildTree(). It's now TRUE on
  24.       success, not DOSTRUE.
  25.     - Fixed a bug in the table builder, merged sub-tree were released
  26.       incorrectly.
  27.     - Added the WithoutMMU() LVO entry.
  28.     - Removed the AllocLineMem() LVO, this one was useless.
  29.  
  30. Release 0.25
  31. ------------
  32.  
  33.     - Debugged 060 exception handler again. Found only one bug, ROM
  34.       emulation was broken.
  35.     - Enhanced AbsExecBase accesses - does no longer block interrupts
  36.       unnecessary.
  37.     - Fixed parts of the exception handler to read the faulty instruction
  38.       from the correct function code space.
  39.     - Added a complicated test for the EC030 processor that should
  40.       finally work.
  41.     - Enabled the MMULib internal exception handler test.
  42.     - Removed all accesses to the ppc.library and reserved entries.
  43.       PPC.lib compatibility is no longer an issue for me. The MMU.lib
  44.       is WarpOs-compatible, though, as long as the system isn't 
  45.       infected by Ralph's "software".
  46.     - Added a safety test in the MMUCacheTest program to avoid
  47.       hangs.
  48.  
  49. -----------------------------------------------------------------------------
  50.  
  51. Compatibility warnings and bad software:
  52.  
  53. - The MMU tables generated by the "CPU FastROM" command, an official CBM tool,
  54. are simply wrong if run on a 030 processor. Chip memory is marked as
  55. "cacheable", which is plain wrong. Already spoke to Michael Sinz who agrees
  56. in that point. Don't use it, run "MuFastRom" instead.
  57.  
  58. - The MMU tables build by "SetCPU FastRom" are not very well suited for 
  59. MuForce. The MMU library will replace the table layout by something more
  60. adapted.
  61.  
  62. Since these programs may install a "bogus" exception vector, you shouldn't
  63. run both programs with the "FastROM" option. If you absolutely want to do, 
  64. run them *before* installing any MMU.lib related program and COP - remember, 
  65. you have been warned. "MuFastROM" will do better once the library is finished.
  66.  
  67.  
  68. - CMQ060.lha from the Aminet: This program uses the MOVE16 instruction to
  69. "speed up" the copy mem routines of the Os. Besides that the speedup is
  70. minimal, you should be informed that this instruction is not fully 
  71. supported by the Amiga hardware. A MOVE16 into the chip memory could yield
  72. to "strange and wonderful things", and may or may not work. Its burst
  73. accesses simply don't fit into the DMA access mechanism of the Amiga 
  74. custom chips. (Note that no other instruction will try burst accesses
  75. into non-cacheable memory!)
  76. Moreover, if a MOVE16 crashes, the mmu.library is out of buisiness, it will 
  77. simply guru. Do not run this program!
  78.  
  79. MOVE16 is one of the non-supported instructions in an Amiga system, others
  80. are TAS, CAS and CAS2 (which are of little use in a single processor system).
  81.  
  82. For more detailed information of MOVE16, check either the enforcer.guide or
  83. the motorola documentation, I'm not making this up, and this is not 
  84. mmu.library related.
  85.  
  86.       
  87.  
  88. Release 0.21
  89. ------------
  90.  
  91.     - Tiny adjustments of the 060 handler of the library, now tested.
  92.     - Forgot to fill in the SSP in the exception handler, this caused
  93.       MuForce crashes.
  94.     - INTRO option of MuForce was broken. I thought this is simply too
  95.       easy to make mistakes, but I was wrong. *SIGH*
  96.     - Added more options for "MuFastRom".
  97.     - Included up-to-date version of MMUCacheTest... Ooops.
  98.     - Included the MuOmniSCSIPatch, with the friendly permisson of
  99.       Ralph Babel. For details, read the guide of this program.
  100.     - Forgot to setup the dfc correctly for single page flushes.
  101.       This could have caused hangs in case of zero-page access, for
  102.       example.
  103.  
  104. This release has been successfully tested on a 030, a 040 and a 060. Should
  105. work fine for your system, too, as long as the ppc.library is not used.
  106.  
  107. Release 0.20
  108. ------------
  109.  
  110.     Just too much changed: To keep the story short:
  111.     
  112.     - Lots of bug fixes.
  113.     - Exception handlers have been written and tested.
  114.     - MuTools have been written:
  115.       MuFastROM remaps the ROM to RAM,
  116.       MuFastZero remaps the autovectors from chip to fast
  117.       without touching the VBR.
  118.       MuForce is an option compatible enforcer replacement.
  119.       MuScan prints the MMU table.
  120.  
  121.     The release 0.20 is the first "fully working modulo bugs"
  122.     version.
  123.  
  124. Known Bugs:
  125. -----------
  126.  
  127.     The MMU table manager rebuilds currently the MMU tables for a
  128.     complete memory block even if only a minor sub-block was changed.
  129.     Therefore, it may take longer to build the MMU table than absolutely
  130.     required.
  131.  
  132.     The MMU library builds currently 68030 MMU tables with the
  133.     REPAIRABLE flag set less efficient than it could.
  134.  
  135.     The library does not yet provide a mechanism to adjust the page
  136.     size, even though it is flexible enough to adapt to any page size
  137.     possible. This feature will be added in the form of tags to the
  138.     CreateContext() call.
  139.  
  140.     The library does not yet contain a workaround for a 040 firmware
  141.     bug: If an illegal, line A, chk or unimplemented floating point
  142.     instruction is located at the last 16 bits of a page and the next
  143.     page is not available, the 040 generates an access fault instead
  144.     of the proper exception. The fault address is the address of the
  145.     missing page, and the PC points to the instruction in the preceeding
  146.     page.
  147.  
  148. These bugs will be fixed within the next releases of the library, including
  149. all the other bugs you may find.
  150.     
  151. -----------------------------------------------------------------------------
  152.  
  153. Special thanks goes to:
  154.  
  155. -Ralph Babel for giving information about the CachePreDMA/CachePostDMA
  156.  functions.
  157. -Carsten Schlote for starting development of a mmu.library aware 68060.lib.
  158. -Michael Sinz (a real BIG thank you!) for discussing a lot of details of
  159.  CachePreDMA/CachePostDMA, for sending me the sources of these functions
  160.  in his 68040, and especially - and that's really great - for making the
  161.  Enforcer sources available and for allowing me to reuse the exception
  162.  handler of the Enforcer. This will happen in one of the next releases.
  163. -Bjoern Schmidt for allowing me to run some tests on his 060.
  164. -Werner Müller for his 040 based system.
  165. -All the testers for running tests and sending me detailed information about
  166.  their systems.
  167.  
  168. Thank you to all of you, this project won't clearly possible without your
  169. support!    
  170.  
  171. Special thanks does not go to:
  172.  
  173. Ehem, fill in... Guess you know.
  174.  
  175. -----------------------------------------------------------------------------
  176. Warning: This is "work in progress", it's by no means complete.
  177.  
  178. I'm in the urge need for testers and co-authors. Especially MC68060 systems
  179. are very welcome for testing.
  180.  
  181. Please check the "ReadMe" in the archive for details how to contact me.
  182. -----------------------------------------------------------------------------
  183.  
  184. Purpose and goal of this library:
  185.  
  186. The mmu.library is a planned basis for MMU (memory management) related
  187. functions the MC68K family can perform. Up to now certain hacks are available
  188. that program the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,
  189. Shapeshifter,VMM,GigaMem...). 
  190. It's therefore not unexpected that these tools conflict with each other.
  191. There's up to now no Os support for the MMU at all - the gap this mmu.library
  192. is planned to fill.
  193.  
  194. The goal is to provide a basis of functions to address and program the MMU in
  195. a hardware independent, Os friendly fashion. Hence, a future version of the
  196. Enforcer will work together with virtual memory, and others.
  197.  
  198. The mmu.library is also the basis for a virtual memory project, the 
  199. memory.library. Even though the mmu.library does not provide virtual memory
  200. itself, it builds the basics to allow an easy implementation and to avoid the
  201. hacks required by other implementations so far.
  202.  
  203. For the design details of the mmu.library, consider reading the autodocs in
  204. this archive. Everything is still VERY preliminary, there's still room for
  205. changes and suggestions.
  206.  
  207. ------------------------------------------------------------------------------
  208.  
  209. This distribution contains the full sources written so far, the documentation
  210. and some C sample sources how to use the library, as well as the includes
  211. and autodocs written so far. Check the ReadMe for details. Even if you're not
  212. a developer, you could help me a lot by running a test program on your
  213. computer and sending me the results. For details about testing - this 
  214. became a bit trickier - please consider the ReadMe.
  215.  
  216. ------------------------------------------------------------------------------
  217. The mmu.library development group:
  218.  
  219. This is a loose, non-commercial group of developers that support the 
  220. mmu.library by their work. If you want to join, please lemme know.
  221.  
  222. ------------------------------------------------------------------------------
  223.  
  224.                          The THOR-Software Licence (v2, 24th June 1998)
  225.  
  226.  
  227. This License applies to the computer programs known as the "mmu.library" 
  228. and its sources. The "Program", below, refers to such program. The
  229. "Archive" refers to the package of distribution, as prepared by the author
  230. of the Program, Thomas Richter. Each licensee is addressed as "you".
  231.  
  232.  
  233.  
  234. The Program and the data in the archive are freely distributable
  235. under the restrictions stated below, but are also Copyright (c)
  236. Thomas Richter.
  237.  
  238. Distribution of the Program, the Archive and the data in the Archive by a
  239. commercial organization without written permission from the author to any
  240. third party is prohibited if any payment is made in connection with such
  241. distribution, whether directly (as in payment for a copy of the Program) or
  242. indirectly (as in payment for some service related to the Program, or
  243. payment for some product or service that includes a copy of the Program
  244. "without charge"; these are only examples, and not an exhaustive enumeration
  245. of prohibited activities).
  246.  
  247.  
  248. However, the following methods of distribution
  249. involving payment shall not in and of themselves be a violation of this
  250. restriction:
  251.  
  252.  
  253. (i) Posting the Program on a public access information storage and
  254. retrieval service for which a fee is received for retrieving information
  255. (such as an on-line service), provided that the fee is not
  256. content-dependent (i.e., the fee would be the same for retrieving the same
  257. volume of information consisting of random data).
  258.  
  259.  
  260. (ii) Distributing the Program on a CD-ROM, provided that
  261.  
  262. a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
  263. especially this licence agreement;
  264.  
  265. b) the CD-ROM is made available to the public for a nominal fee only,
  266.  
  267. c) a copy of the CD is made available to the author for free except for
  268. shipment costs, and
  269.  
  270. d) provided further that all information on such CD-ROM is redistributable
  271. for non-commercial purposes without charge.
  272.  
  273.  
  274. Redistribution of a modified version of the Archive, the Program or the
  275. contents of the Archive is prohibited in any way, by any organization,
  276. regardless whether commercial or non-commercial. Everything must be kept
  277. together, in original and unmodified form.
  278.  
  279.  
  280.  
  281.  
  282. Limitations.
  283.  
  284.  
  285. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
  286. WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
  287. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  288. PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
  289. RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
  290. THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
  291. SERVICING, REPAIR OR CORRECTION.
  292.  
  293.  
  294. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
  295. AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
  296. LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
  297.  
  298.  
  299.                                                         Thomas Richter
  300.  
  301. -----------------------------------------------------------------------------
  302.  
  303. So long,
  304.     Thomas            (February 1999)
  305.  
  306.  
  307. ============================= Archive contents =============================
  308.  
  309. Original  Packed Ratio    Date     Time    Name
  310. -------- ------- ----- --------- --------  -------------
  311.      628     270 57.0% 27-Feb-99 23:59:36 +Autodocs.info
  312.    31552   11899 62.2% 28-Mar-99 16:34:34 +exceptions.doc
  313.    24158    9205 61.8% 27-Feb-99 23:47:00 +implementation
  314.    14841    4911 66.9% 26-Sep-98 23:49:10 +memory.doc
  315.    76189   22148 70.9% 28-Mar-99 01:20:58 +mmu.doc
  316.      628     267 57.4% 27-Feb-99 23:59:36 +C_Sources.info
  317.    13347    3424 74.3% 15-Mar-99 00:08:34 +MMUCacheTest.c
  318.    19775    4716 76.1% 28-Mar-99 16:30:58 +MuFastRom.c
  319.    27222    6698 75.3% 28-Mar-99 16:30:48 +MuFastZero.c
  320.    15412    3532 77.0% 07-Feb-99 01:12:48 +MuScan.c
  321.     3338     899 73.0% 07-Feb-99 01:12:18 +SCSIDMATest.c
  322.      628     269 57.1% 27-Feb-99 23:59:36 +Include.info
  323.     3911     961 75.4% 28-Mar-99 16:29:38 +mmu_protos.h
  324.     3623    1210 66.6% 28-Mar-99 16:29:38 +alerts.h
  325.     3688    1230 66.6% 28-Mar-99 16:29:38 +alerts.i
  326.     2021     636 68.5% 28-Mar-99 16:29:38 +config.h
  327.     2385     694 70.9% 28-Mar-99 16:29:38 +config.i
  328.     7445    2722 63.4% 28-Mar-99 16:29:38 +context.h
  329.     7540    2741 63.6% 28-Mar-99 16:29:40 +context.i
  330.     9975    3423 65.6% 28-Mar-99 16:29:40 +exceptions.h
  331.    10010    3438 65.6% 28-Mar-99 16:29:40 +exceptions.i
  332.     1767     567 67.9% 28-Mar-99 16:29:40 +mmubase.h
  333.     1885     596 68.3% 28-Mar-99 16:29:40 +mmubase.i
  334.     3846    1377 64.1% 28-Mar-99 16:29:42 +mmutags.h
  335.     3912    1407 64.0% 28-Mar-99 16:29:42 +mmutags.i
  336.     2114     689 67.4% 28-Mar-99 16:29:42 +mmu_lib.fd
  337.     5188    1094 78.9% 28-Mar-99 16:29:42 +mmu_pragmas.h
  338.      141     106 24.8% 28-Mar-99 16:29:42 +mmu.h
  339.     1628     866 46.8% 01-Mar-99 17:32:30 +LiesMich
  340.     6980    1291 81.5% 01-Mar-99 16:47:22 +MMU.lib
  341.     6996    1289 81.5% 01-Mar-99 16:50:36 +MMU_040.lib
  342.    37976    3988 89.4% 01-Mar-99 17:07:00 +MMU_PPC.a
  343.    12204    1437 88.2% 01-Mar-99 17:09:14 +MMU_WOS.lib
  344.     1535     789 48.5% 01-Mar-99 17:46:08 +ReadMe
  345.    38684   18676 51.7% 28-Mar-99 16:37:06 +mmu.library
  346.    12068    5066 58.0% 28-Mar-99 21:40:24 +MMULib.readme
  347.      788     350 55.5% 27-Feb-99 23:59:36 +MuTools.info
  348.     3224    2005 37.8% 28-Mar-99 21:31:22 +MuFastRom
  349.    11347    4582 59.6% 28-Mar-99 21:31:24 +MuFastRom.guide
  350.      523     273 47.8% 28-Mar-99 21:31:24 +MuFastRom.guide.info
  351.     1080     463 57.1% 28-Mar-99 21:31:22 +MuFastRom.info
  352.     4292    2525 41.1% 28-Mar-99 21:31:24 +MuFastZero
  353.    12677    5105 59.7% 28-Mar-99 21:31:24 +MuFastZero.guide
  354.      523     272 47.9% 28-Mar-99 21:31:24 +MuFastZero.guide.info
  355.     1081     637 41.0% 28-Mar-99 21:31:24 +MuFastZero.info
  356.    11844    6124 48.2% 28-Mar-99 21:31:24 +MuForce
  357.    81777   24066 70.5% 28-Mar-99 21:31:24 +MuForce.guide
  358.      523     274 47.6% 28-Mar-99 21:31:26 +MuForce.guide.info
  359.     1431     888 37.9% 28-Mar-99 21:31:24 +MuForce.info
  360.     1444     898 37.8% 03-Mar-99 20:07:24 +MuForce_Off.info
  361.     1426     888 37.7% 28-Mar-99 21:31:22 +MuForce_Window.info
  362.      956     737 22.9% 28-Mar-99 21:31:26 +MuMove4K
  363.     1703     825 51.5% 28-Mar-99 21:31:22 +MuMove4K.reade
  364.      856     373 56.4% 28-Mar-99 21:31:24 +MuMove4K.reade.info
  365.     1096     793 27.6% 28-Mar-99 21:31:26 +MuOmniScsiPatch
  366.    10822    4482 58.5% 28-Mar-99 21:31:26 +MuOmniScsiPatch.guide
  367.      523     274 47.6% 28-Mar-99 21:31:26 +MuOmniScsiPatch.guide.info
  368.      546     277 49.2% 28-Mar-99 21:31:26 +MuOmniScsiPatch.info
  369.     2524    1474 41.6% 28-Mar-99 21:31:24 +MuScan
  370.    18394    6653 63.8% 28-Mar-99 21:31:26 +MuScan.guide
  371.      523     275 47.4% 28-Mar-99 21:31:26 +MuScan.guide.info
  372.     1062     526 50.4% 28-Mar-99 21:31:24 +MuScan.info
  373.     2964    1888 36.3% 28-Mar-99 21:31:22 +MuSetCacheMode
  374.    15089    5721 62.0% 28-Mar-99 21:31:22 +MuSetCacheMode.guide
  375.      523     272 47.9% 28-Mar-99 21:31:22 +MuSetCacheMode.guide.info
  376.     1277     598 53.1% 28-Mar-99 21:31:22 +MuSetCacheMode.info
  377.      368     308 16.3% 28-Mar-99 21:31:22 +NoMuMove4K
  378.    21262    8777 58.7% 28-Mar-99 16:33:14 +ReadMe
  379.      523     276 47.2% 27-Feb-99 23:59:36 +ReadMe.info
  380.      628     272 56.6% 28-Feb-99 00:00:04 +Shell_Only.info
  381.    16900    9346 44.6% 15-Mar-99 00:08:26 +MMUCacheTest
  382.      728     426 41.4% 17-Sep-98 21:43:20 +PrintTTX
  383.     1320     869 34.1% 15-Nov-98 17:56:44 +SCSIDMATest
  384.      260     209 19.6% 04-Oct-98 00:27:58 +TestMMU
  385. -------- ------- ----- --------- --------
  386.   650067  219532 66.2% 30-Mar-99 21:06:58   74 files
  387.